<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 
  详情网页：  https://juejin.cn/post/7014013640151924773
    常用来迭代数组的方法有如下：
    注意：都不会改变原数组
    every():对数组每一项都传入运行函数，若每一项都返回true，则这个方法为true。
    filter():对数组每一项都传入运行函数，函数返回true的项会组成数组之后返回。
    forEach():对数组每一项都传入运行函数，没有返回值。
    map():对数组每一项都传入运行函数，返回由每次函数调用的结果构成的数组。
    some():对数组每一项都传入运行函数，若有一项函数返回true，则这个方法返回true.
  参数：
  item 用于测试的当前值
  index 用于测试的当前值的索引
  array 调用当前数组

-->

    <script>
        //every()和 some()
        // let numbers = [2, 1, 4, 3, 5, 4, 3];
        // //every()来说，传入的参数必须对每一项都返回true，它才会返回true
        // let everyResult = numbers.every((item, index, array) => item > 2);
        // console.log(everyResult); // false
        // //some()，只要有一项让传入的函数返回true，它就返回true
        // let someResult = numbers.some((item, index, array) => item > 2);
        // console.log(someResult); // true



        //filter() 基于给定的函数来决定每一项是否应该包含在它返回的数组中 !常用
        // let numbers = [2, 1, 4, 3, 5, 4, 3];
        // let filterResult = numbers.filter((item, index, array) => item > 2);
        // console.log(filterResult); // 4,3,5,4,3
        //只有对这些项传入的函数才返回 true，这个方法非常适合从数组中筛选满足给定条件的元素



        //map()方法创建一个新数组，这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
        // let numbers = [2, 1, 4, 3];
        // let mapResult = numbers.map((item, index, array) => item * 2);
        // console.log(mapResult); // 4,2,8,6 
        //这个方法返回的数组包含了原始数组中每给数值乘以2的结果。这个方法很适应于创建一个与原数组一一对应的新数组




        //forEach() 这个方法只会对每一项运行传入的函数，没有返回值。其实和for循环遍历数组差不多
        //          let numbers = [2,1,4,3];
        // numbers.forEach((item,index,array) => {
        // console.log(item)
        // }); // 2,1,4,3
    </script>
</body>

</html>